package com.hzyl.famousreader.repository.webservice.api;

import com.hzyl.famousreader.repository.webservice.model.Result;
import com.hzyl.famousreader.repository.webservice.model.Token;
import com.hzyl.famousreader.repository.webservice.model.WechatUser;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.POST;
import retrofit2.http.Query;

/**
 * 用户API
 */
public interface UserService {

  /**
   * 微信登陆
   * @param code
   * @return
   */
  @GET("android/public/wechatLogin")
  Call<Result<WechatUser>> wechatLogin( @Query("code") String code);

  /**
   * 登陆接口
   *
   * @param authorization 认证参数
   * @param grantType     授权类型
   * @param username      账号
   * @param password      密码
   * @return
   */
  @POST("oauth/token")
  Call<Token> login(@Header("Authorization") String authorization, @Query("grant_type") String grantType,
                    @Query("username") String username, @Query("password") String password);

  /**
   * 获取短信接口
   *
   * @param phone
   * @param template
   * @return
   */
  @POST("android/public/sendSms")
  Call<Result> sendSms(@Query("phone") String phone, @Query("template") String template);

  @POST("android/public/register")
  Call<Result> register(@Query("phone") String username, @Query("password") String password,
                        @Query("repassword") String repassword, @Query("smsCode") String smsCode);

  @POST("android/public/checkPhone")
  Call<Result> isUserExit(@Query("phone") String phone);

  @POST("android/public/modifiedPassword")
  Call<Result> modifiedPassword(@Query("phone") String username, @Query("password") String password,
                        @Query("repassword") String repassword, @Query("smsCode") String smsCode);
}
